// pages/movies/movies.js
import {
  toPromise
} from '../../utils/index'
const {
  GbaseUrl
} = getApp()
const params = {
  inTheaters: {
    url: `${GbaseUrl}/in_theaters`,
    method: "get",
    data: {
      start: 5,
      count: 3
    }
  },
  comingSoon: {
    url: `${GbaseUrl}/coming_soon?start=19&count=3`
  },
  Top250: {
    url: `${GbaseUrl}/top250?start=6&count=3`
  }
}
Page({

  /**
   * 页面的初始数据
   */
  data: {
    inTheaters: [],
    comingSoon: [],
    Top250: [],
    searchResult:false,
    searchData:[]

  },
  onGotoMore(e) {
    console.log(e.currentTarget.dataset.type)
    const type = e.currentTarget.dataset.type
    wx.navigateTo({
      url: `/pages/more-movie/more-movie?type=${type}`,
    })
  },
  onLincancel(){
    this.setData({
      searchResult:false,
    })
  }
  ,
  async onConfirm(e) {
    const searchParams={
      url: `${GbaseUrl}/search`,
     data:{
      q: e.detail.value
     }
    }
   let result = (await toPromise(wx.request)(searchParams)).data.subjects
    console.log(result)
    this.setData({
      searchResult:true,
      searchData:result
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {


    let result = {} //声明一个对象是为了防止在循环中多次setData导致性能浪费
    for (const key in params) {
      //1. 这个判断是用来防止传入参数错误导致乱加data
      //2. (await toPromise(wx.request)(params[key]))外层一定要加(),因为我是要其结果的.data属性而不是其回调函数本身
      if (this.data.hasOwnProperty(key)) result[key] = (await toPromise(wx.request)(params[key])).data.subjects
    }
    this.setData({
      ...result
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})